# coding: UTF-8
import pygame
from pygame.sprite import Sprite
import settings


class Bullet(Sprite):
    """【类】对飞船发射子弹进行管理的类

    注意：Bullet类继承了Sprite类，和Ship类有所不同，主模块中实际调用的是Group类，注意区分
    """

    def __init__(self, FP_settings, FP_screen, FP_ship):
        super(Bullet, self).__init__()  # 这里使用了Python2语法，也可以写为Python3语法：super().__init__()
        self.ATR_screen = FP_screen
        self.rect = pygame.Rect(0, 0, FP_settings.bullet_width, FP_settings.bullet_height)
        self.rect.centerx = FP_ship.rect.centerx
        self.rect.top = FP_ship.rect.top
        # 存储浮点数
        self.ATR_bullet_y = float(self.rect.y)
        # 设置子弹颜色
        self.ATR_color = FP_settings.bullet_color
        # 设置子弹速度
        self.ATR_speed_factor = FP_settings.bullet_speed_factor
        # 连发标志（目前为弃用状态）
        self.ATR_fusillade = False

    def MET_draw(self) -> None:
        """【类方法】在屏幕上绘制子弹
        """
        pygame.draw.rect(self.ATR_screen, self.ATR_color, self.rect)
        return None

    def update(self) -> None:   # 这里的类方法名称必须和Group类中的update()方法名称一致，因为该方法会调用每一个对象的update()方法
        """【类方法】向上移动子弹
        """
        self.ATR_bullet_y -= self.ATR_speed_factor
        self.rect.y = self.ATR_bullet_y
        return None


class Missile():
    """【类】导弹
    """

    def __init__():
        pass
